بتازگی بسیاری از سایتها در حال آسیب دیدن
از حملات ه-ک ر ها هستند. به همین دلیل تصمیم گرفته شد که یک مقاله جامع
در رابطه با ارتقا امنیت سایت های جوملایی نوشته شود که تقریبا نسخه کاملی
از راه-ک ارهای امنیتی برای سایت های جوملایی باشد. امیدواریم شما بتوانید
از این مقاله استفاده کامل را ببرید.
به گزارش سافت گذر به نقل ازبرسام؛ هیچ سایتی ایمن نیست منتها ممکن است حمله
کننده هنوز راه نفوذ به ان را پیدا ننموده باشد. این موضوع هم ربطی به
مدیریت جوملا ، ورد پرس و … ندارد بلکه تمامی سایت ها حتما راه نفوذی
دارند. قصد ما در این مقاله سعی در قفل و زنجیر کردن سایت است که مسلما کار
را برای دوست ه-ک رمان سخت تر میکند.
یک نکته هم در رابطه با ه-ک ر ها بگم
اصولا ه-ک ر ها میباید یا دارای سواد بالایی باشند و یا از سواد نسبی خوبی
برخوردار باشند به همبن دلیل این دسته از افراد اکثرا در استخدام شرکت های
امنیتی بزرگ هستند و حقوق بسیار بالایی هم دارند و قابل احترام هستند اما
خود ه-ک ر ها به ۲ دسته تقسیم میشوند اصطلاحا ه-ک ر های سفید و سیاه که خوب
از لقبی هم برای خودشون انتخاب میکنند مشخصه هر کدام دارای چه خصوصیاتی
هستند البته خود این دسته ها هم به شعب مختلف تقسیم میشه و حتی زبان نگارش
مخصوص خودشون هم دارند . خلاصه دنیاییه !
در این مقاله قصد نداریم به این تاریخچه
بپردازیم تنها قصد ما بهبود امنیت است لذا از این مقال میگذریم . قبل از هر
چیز باید بدانید یک ه-ک ر میتواند از ۲ طریق کلی سایت شما ه-ک کند ۱- از
سمت سرور ۲- از سمت سایت
الف ) حمله از سمت سرور
در این حالت حمله کننده به سرور دسترسی
دارد و آنچنان کاری از شما بر نمیاید هر چقدر هم امنیت سایتتان را بالا
بررید فایده ای ندارد چرا که حمله کننده اصلا به سایت شما کاری ندارد و به
منابع سرور دسترسی دارد . اما یک کار دیگر میتوانید انجام دهید .
۱- اول اینکه سروری انتخاب کنید که قبل
ه-ک نشده باشد . برای این انتخاب باید به شنیده های خود اعتماد کنید و یا
پاشنه ها را بالا بکشید و شروع کنید به جستجو در سایت هایی که تصاویر ه-ک
سایت ها را میگذارند سپس سرور ان ها را پیدا نمایید و ….
۲- در هنگام خرید هاست باید به مواردی که مربوط به تنظیمات سرور است دقت کنید ازجمله به موارد زیر
۲-۱ قبل از خرید هاست از سرپرست سرور
بپرسید که آیا در PHP از su_php استفاده میکنند با خیر ؟ استفاده از این
حالت به معنای ان است که فایل های موجود در هاست شما تحت کنترل خود دارنده
اکانت که شما باشید میباشد و نیازی به تنظیمات GLOBAL نیست به زبان ساده تر
در این حالت سطح دسترسی ۷۵۵ توسط اسکریپت قابل نگارش تشخیص داده میشود و
نیازی نیست که شما این سطح دسترسی ها را به ۷۷۷ تغییر دهید . وقتی دسترسی
یک پوشه را روی ۷۷۷ قرار میدهید به معنای ان است که محتویات آن را برای
عموم آزاد کرده اید !
۲-۲ register_globals در سرور که سایت جوملایی روی آن قرار دارد باید خاموش باشد
۲-۳ safe_mode در سروری که یک سایت جوملایی بر روی آن قرار دارد باید خاموش باشد
۲-۴ گزینه allow_url_fopen در سروری که یک سایت جوملایی بر روی آن قرار دارد باید خاموش باشد
۲-۵ allow_url_include در سروری که یک سایت جوملایی بر روی آن قرار دارد باید خاموش باشد
۲-۶ گزینه disable_functions در سروری که یک سایت جوملایی روی ان قرار دارد باید فعال باشد
۲-۷ همین موارد هم باید برای open_basedir صدق میکند منتها اگر سرور از su_php استفاده کرده باشد این گزینه دیگر دارای اهمیت نیست
۳- یکی دیگر از مواردی که در هنگام خرید
هاست باید از سرپرست فنی سرور بپرسید این است که آیا بر روی سرور برنامه
های امنیتی مثل آنتی شل نصب است یا خیر ؟ شل ها برنامه های کوچکی هستند به
ه-ک ر ها قدرت دسترسی به برخی منابع را میدهند . اگر جواب سرپرست سرور بلی
بود اسم برنامه را هم بپرسید و در مورد ان تحقیق کنید . هزینه این برنامه
برای سرور ها بسیار بالا است و تا ۳۰۰ دلار هم میرسد به همین دلیل برخی
سرور ها از این امر غفلت میکنند
۴- از سرپرست سایتتان بپرسید که آیا برای ورود به phpmyadmin دوباره نام کاربری و رمز عبور پرسیده میشود و یا خیر ؟
این ها حداقل مواردی است که قبل از خرید
باید از سرپرست هاستتان بپرسید به دلیل آنکه در این مقاله قصد داریم راه
کار ارئه دهیم تا اینکه روش ها را توضیح دهیم به هین دلیل از ذکر مفاهیم
بالا خودداری میکنیم و تنها به اینکه این موارد باید در سرور دارای چه
تنظیماتی باشد اکتفا میکنیم . گروه جومینا امیدوار است که مدیران سرور ها
هم این مقاله را بخوانند تنظیمات سرورهای خود را بهینه نمایند. البته
همانطور که عرض شد این ها حداقل ها هستند
ب) حمله از سمت سایت
این حمله ها به روش های گوناگونی انجام میشود که مهمترین های آن استفاده از
$_POST
$_GET
$_COOKIE
eval()
base64_decode
Allow_url_fopen
قیلطر دستورات SQL
Allow_url_include
میباشد. قبلا در سایت جومینا یک پلاگین
امنیتی معرفی شده بود که با نصب آن امنیت سایت در مقابل این حملات بالا
میرفت این پلاگین را میتوانید از اینجا دریافت و نصب و فعال کنید . نکته ای
که رابطه با این پلاگین بود درج کپی رایتی بود که در پایین سایت قرار داشت
برای این که کپی رایت هم بردارید .وارد فایل jhackguard.php شوید و خط
$replacement = ”
ایمن شده بوسیله وب سایت جومینا http://www.joomina.ir/’>وب سایت جومینا
“;
را با عبارت زیر جایگزین کنید
$replacement = “”;
به این ترتیب کپی رایت هم حذف میشود دوباره فایل را فشرده نموده و نصب کنید
بسیار خوب حال که جلوی این حمله ها را
گرفتیم میباید وارد مرحله بعدی شویم در این مرحله کارهای دیگری باید انجام
دهید که به ترتیب برای شما فهرست شده و اموزش داده میشود
ب- ۱ ) نام کاربری خود را از admin به نام کاربری دلخواه تغییر دهید
برای این کار از منو بالا مدیریت کاربر را
انتخاب نموده و بر روی نام کاربری admin کلیک کنید در صفحه جدید این نام
کاربری را به نام دلخواه تغییر داده و ذخیره را فشار دهید
ب-۲) از رمز های سخت استفاده کنید
رمز خود را سخت انتخاب کنید بدین معنا که حتی المکان از حروف، اعداد و سنبل ها در رمز ورود خود استفاده نمایید
ب-۳ ) برروی پوشه ادمین خود رمز بگذارید
این کار را براحتی میتوانید هم از طریق
پنل هاست خود انجام دهید وارد گزینه Password Protect Directories شوید و
نام کاربری و رمز ورود خود را انتخاب نمایید .
ب – ۴ ) شما میتوانید با استفاده از
افزونه های جوملا حتی مسیر پوشه administrator را تغییر دهید به عنوان مثال
میتوانید پلاگین مربوط به این کار را از اینجا در یافت و نصب نمایید.
ب- ۵ ) تغییر پیشوند جداول پیش فرض جوملا
جداول جوملا به صورت پیش فرض در جوملا ۱.۵
با jos_ شروع میشود که البته این مشکل در جوملا ۱.۶ و ۱.۷ حل شده است اما
شما میباید برای امنیت بیشتر اینیشوند را نیز تغییر دهید برا این کار
افزونه لازم را از اینجا دریافت نمایید و مطابق با آموزش داده شده جلو روید
.
ب- ۶ ) جوملا خود را بروز نگه دارید
باور کنید یکی از مهمترین نکات در ه-ک
نشدن سایت های جوملایی بروز نگه داشتن نشخه جوملا است بارها شده از من
سئوال شده که چگونه نسخه بروز رسانی جوملا را نصب کنیم ( با توجه به اینکه
سایت های پشتیبان جوملا معمولا با تاخیر نشخه های بروز رسانی فارسی را
منتشر میکنند) بهترین کار این است که به خود سایت joomla.org رفته و بسته
بروز رسانی را دانلود نمایید . از طرفی سایت های وزین ایرانی هم هستند که
گرچه با تاخیر یکی دو روزه اما این نسخه ها را منتشر میکنند که معتبر ترین
آن ها جومفا ، گروه مامبو و جوملا دات ای ار است هر سه گروه نسخه های ترجمه
شده خوبی از جوملا ۱.۵ دارند و الالخصوص که جومفا هم توزیع کننده زبان
منطقه ای جوملا جهانی برای جوملا ۱.۵ در این بوده است .
ب- ۷ ) sef سایت خود را فعال نمایید
در مبحث ارتقا سایت جهت موتورهای جستجو
مفاهیمی همچون sef و seo مطرح میشود به صورت خلاصه sef اصلاح کننده لینک
های یک سایت است . اهمیت این نکته زمانی است که شما در سایت خود از افزونه
های مختلفی استفاده میکنید . ممکن است برخی از افزونه ها دارای حفره های
امنیتی باشند اگر sef را در سایت خود فعال ننموده باشید ه-ک ر میتواند در
گوگل نام افزونه ای که در سایت شما بکار رفته است را جستجو نماید براحتی
سایت شما را مورد حمله قرار دهد . برای فعال نمودن sef در جوملا کافی است
به روت سایت خود رفته (بوسیله فایل منیجر هاست ) و فایل با نام
htaccess.txt را نامش را تغییر دهید بدین صورت که txt. را از انتهای آن پاک
نموده و در ابتدای آن یک “.” (نقطه) بگذارید.
نکته : زمانی که میخواهید وارد فایل منیجر
شوید از شما پرسیده میشود که فایل های مخفی نمایش داده شود و یا خیر
htaccess. برای سرور ها فایل مخفی شناخته میشود به همین دلیل پس از انکه
شما این نام را تغییر میدهید ممکن است آن را نبینید که با این کار این مشکل
حل میشود
در گام بعدی وارد مدیریت سایت خود شده و
در قسمت تنظیمات اصلی (پیکربندی) از تب سایت از قسمت تنظیمات SEO گزینه ها
را بر روی بلی قرار دهید
در برخی از موارد مشاهده شده که بعضی از
سرور ها با فعال نمودن تمامی موارد مشکل دارند برای همین میتوانید تک به تک
گزینه ها را بر روی بلی قرار داده و امتحان کنید
ب-۸ ) استفاده از htaccess. جهت ارتقا امنیت
این فایل همانطور که از نام آن هویدا است
برخی دسترسی ها و .. را به سایت تنظیم مینماید برای اینکه امنیت سایت خود
را بالا ببرید این فایل را باز نمایید و دستورات زیر را در ان وارد کنید .
deny from all
<FilesMatch “index.php”>
allow from all
</FilesMatch>
<FilesMatch “index2.php”>
allow from all
</FilesMatch>
برای اینکه این دستورات در htaccess درست
کار کند سرور شما میباید حداقل از PHP 5.2 استفاده نماید این دستور بدین
معنا است که دسترسی خارجی به تمامی فایل ها به غیر از index.php و
index2.php بسته باشد . در صورتی که پس از اجرای دستور با مشکلی مواجه شدید
میتوانید ان ا حذف کنید اما قائدتا نباید مشکلی وجود داشته باشد
نکته : به این روش میتوانید از فایل های ترجمه شده خود نیز محافظت کنید
ب- ۹ ) افزونه هایی که در سایت خود استفاده مینمایید را همواره بروز نگه دارید
به عنوان مدیر یک سایت این وظیفه شما است
که از بروز بودن افزونه های سایت خود مطمئن باشید برای این کار میتوانید
دائما به سایت های انتشار دهنده این افزونه ها سر بزنید و از بروز بودن آن
ها اطمینان حاصل کنید .و البته بسیاری از افزونه در قسمت مدیریتشان نسخه
افزونه را اعلام میکنند
ب- ۱۰ ) افزونه و فایل هایی که استفاده نمیکنید را پاک کنید !
ب- ۱۱ ) طول عمر کش را زیاد نکنید این
گزینه در پیکربندی سایت قرار داد و برخی موارد دیده ام که طول عمر کش را
برخی از سایت زیاد میکنند تا تعداد میهمانان را زیاد نشان دهد . ببینید در
پوشه کش جوملا نام کاربری و رمز ورود شما تا زمانی که جلسه کاری به پایان
نرسد وجود خواهد داشت و سیستم شما را وارد شده فرض میکند کافی است ه-ک ر به
این پوشه و پوشه لاگ دسترسی پیدا کند و …. (راه استخراج را به دلایل
امنیتی ذکر نمیکنیم )
ب – ۱۲ ) فایل های index.html موجود در پوشه ها را پاک نکنید
این فایل یک صفحه سفید را نمایش میدهد
یعنی اگر کسی مستقیما آدرس یک پوشه را وارد نماید با یک صفحه سفید روبرو
میشود . این مورد مخصوصا در پوشه logs , tmp خیلی مهم است
ب- ۱۳ ) از سایت هایی که سایت شما را به صورت رایگان اسکن میکنند استفاده نمایید نمونه این سایت ها را میتوانید از اینجا ببینید
ب- ۱۴ ) به غیر مواقع لازم از ftp استفاده نکنید
در صورتیکه از سروری که از su_php استفاده
مینماید بهره میبرید نیازی به فعال سازی ftp نیست . حال فرض کنید که
اینطور نباشد . در صورتی که ftp را فعال نمایید مشخصات ان در فایل config
شما ثبت میشود حال اگر ه-ک ر به این فایل دسترسی پیدا کند کل سایت شما در
دستان وی خواهد بود ! به همین دلیل اگر هم مجبور شدید ftp را فعال کنید پس
از استفاده ان را غیر فعال ( نام کاربری و رمز عبور آن را عوض کنید )نمایید
. گرچه فعال بودن ftp باعث بهبود سرعت سایت شما میشود.
ب- ۱۵ ) فایل config خود را کد کنید
شما میتوانید این فایل را که تمامی مشخصات
شما در آن قرار دارد کد نمایید گرچه کد شکن همه نرم افزار ها موجود است
اما باز هم کار را کمی برای ه-ک ر سخت میکند در این مورد بهتر است با
سرپرست سرور صحبت نمایید
این موارد تنها خلاصه ای از مواردی است که
باید در سایت های خود بکار ببرید. موارد دیگری از جمله تغییر مکان فایل
config و تغییر شناسه admin از ۶۲ به عددی دیگر و … وجود دارد که در مقالات
بعدی مفصل در مورد آن ها بحث خواهد شد.
ممکن است برای یک ه-ک ر، ه-ک یک سایت بازی با کدها و حل یک معما جالب باشد
اما برای دارنده سایت ممکن است به از بین رفتن آبروی وی ختم شود. گرچه
همواره گفته ایم هر سایتی ممکن است ه-ک شود و در دنیای نت این امری عادی
است.
حال که گروه های امنیتی ایران در حالی که
مورد تحریم زشت اطلاعاتی و علمی قرار گرفته ایم گوی سبقت را از سایر رقبا
ربوده اند ( گروه آشیانه ) و در دنیایی که تکنولوژی حرف اول را میزند این
دوستان توانسته اند مقام بیاورند چرا ما که مدیران سایت های ایرانی هستیم
در صدد ایمن کردن سایت های خود بر نیاییم تا زحمات شبانه روزیمان یک شبه از
بین نرود ؟